package com.eascs.fp.message.manager;

import com.eascs.app.dao.PageResult;
import com.eascs.fp.common.entity.MsgSmsEntity;
import com.eascs.fp.common.vo.MsgSmsQueryVO;

public interface IMsgSmsManager {
	public boolean add(MsgSmsEntity sms);
	
	
	public boolean update(MsgSmsEntity sms);
	
	public boolean updateAuthCodeStatus(String phone, String authCode, byte status);
	
	/**
	 * 根据手机号和验证码去查询相应记录<p>
	 * 如果没有，返回null
	 * @param phone
	 * @param authCode
	 * @return
	 */
	public MsgSmsEntity queryAuthCode(String phone, String authCode);
	/**
	 * 根据手机号，短信类型，验证码，短信状态去查询短信
	 * @param phone		手机号
	 * @param smsType	短信类型（短信内容）
	 * @param authCode	验证码
	 * @param status	短信状态
	 * @return
	 */
	public MsgSmsEntity query(MsgSmsQueryVO vo);
	
	public int count(MsgSmsQueryVO vo);
	
	/**
	 * 统计本手机号码当天当前小时内发送短信条数
	 * @param phone
	 * @return
	 */
	public int countPerHour(String phone);
	
	/**
	 * 统计本手机号码当天内发送短信条数
	 * @param phone
	 * @return
	 */
	public int countPerDay(String phone);
	
	/**
	 * 本手机号下的此条验证码(当天)是否已经失效<p>
	 * 验证码类型的会校验，其他类型的都返回true
	 * @param phone
	 * @param authCode
	 * @return
	 * 2016年7月28日
	 */
	public boolean isValid(String phone, String authCode);
	
	/**
	 * @Title: page
	 * @Description: 分页查询短信信息
	 * @author 张庆奇
	 * @param vo
	 * @return
	 * @return PageResult<Object[]>
	 * @throws
	 * @date 2016年7月29日 上午9:28:59
	 */
	public PageResult<Object[]> page(MsgSmsQueryVO vo);
}
